package com.ddwl.user.dao.mapper;

import com.ddwl.common.dao.mapper.TkMapper;
import com.ddwl.user.dao.dto.DistUserListQueryDto;
import com.ddwl.user.dao.dto.UserDistInfoDto;
import com.ddwl.user.dao.dto.UserInviteCountDto;
import com.ddwl.user.dao.dto.UserInviteCountQueryDto;
import com.ddwl.user.dao.model.UserDistStatistical;

import java.util.List;

/**
 * @author zach
 * @Date :2020-08-31 14:46.
 */
public interface UserDistStatisticalMapper extends TkMapper<UserDistStatistical> {

    /**
     * 查询分销用户信息
     * @return
     */
    List<UserDistInfoDto> queryDistUserList(DistUserListQueryDto distUserListQueryDto);

    /**
     * 查询分销用户邀请信息
     * @param distUserListQueryDto
     * @return
     */
    UserInviteCountDto queryUserInviteCount(UserInviteCountQueryDto distUserListQueryDto);
    /**
     * 查询分销用户直接邀请信息
     * @param distUserListQueryDto
     * @return
     */
    UserInviteCountDto queryUserInviteCountNew(UserInviteCountQueryDto distUserListQueryDto);

    /**
     * 查询所有分销用户直接邀请信息(订正数据用)
     * @param distUserListQueryDto
     * @return
     */
    List<UserInviteCountDto> queryUserInviteCountAll(UserInviteCountQueryDto distUserListQueryDto);

    /**
     * 修改用户推广数
     * @param user
     */
    void addPopularizeNum(UserDistStatistical user);

    /**
     * 修改用户分销统计信息
     * @param entity
     */
    void updateUserDistStatistical(UserDistStatistical entity);

    void subtractPopularizeNum(UserDistStatistical entity);
}
